home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-26 | 2.3 KB | 52 lines | [TEXT/$Tcl] |
-
- uplevel ?level? arg ?arg ...?
-
-
- DESCRIPTION
- All of the arg arguments are concatenated as if they had
- been passed to concat; the result is then evaluated in the
- variable context indicated by level. Uplevel returns the
- result of that evaluation.
-
- If level is an integer then it gives a distance (up the pro-
- cedure calling stack) to move before executing the command.
- If level consists of # followed by a number then the number
- gives an absolute level number. If level is omitted then it
- defaults to 1. Level cannot be defaulted if the first com-
- mand argument starts with a digit or #.
-
- For example, suppose that procedure a was invoked from top-
- level, and that it called b, and that b called c. Suppose
- that c invokes the uplevel command. If level is 1 or #2 or
- omitted, then the command will be executed in the variable
- context of b. If level is 2 or #1 then the command will be
- executed in the variable context of a. If level is 3 or #0
- then the command will be executed at top-level (only global
- variables will be visible).
-
- The uplevel command causes the invoking procedure to disap-
- pear from the procedure calling stack while the command is
- being executed. In the above example, suppose c invokes the
- command
-
- uplevel 1 {set x 43; d}
-
- where d is another Tcl procedure. The set command will
- modify the variable x in b's context, and d will execute at
- level 3, as if called from b. If it in turn executes the
- command
-
- uplevel {set x 42}
- then the set command will modify the same variable x in b's
- context: the procedure c does not appear to be on the call
- stack when d is executing. The command ``info level'' may
- be used to obtain the level of the current procedure.
-
- Uplevel makes it possible to implement new control con-
- structs as Tcl procedures (for example, uplevel could be
- used to implement the while construct as a Tcl procedure).
-
-
- KEYWORDS
- context, stack frame, variables
-